export const description =
  'On this page, we’ll dive into using the form data.'

## Form Data and Multi Part Form Data

Batman learned how to handle file uploads using Robyn. Now, he wanted to handle the form data.


## Handling Multi Part Form Data

<Row>
<Col>
Batman uploaded some multipart form data and wanted to handle it using the following code:
</Col>
  <Col sticky>

    <CodeGroup title="Request" tag="GET" label="/hello_world">

    ```python {{ title: 'untyped' }}
    @app.post("/upload")
    async def upload(request):
      form_data = request.form_data

      return form_data
    ```
    ```python {{ title: 'typed' }}
    @app.post("/upload")
    async def upload(request: Request):
      form_data = request.form_data

      return form_data
    ```

    </CodeGroup>
  </Col>
</Row>


## What's next?

Now, Batman was ready to learn about the advanced features of Robyn. He wanted to find a way to get realtime updates in his dashboard.

- [WebSockets](/documentation/en/api_reference/websockets)
